<?php

use Illuminate\Database\Seeder;

class PermissionsAndRoleSeeder extends Seeder
{
    /**
     * 初始化权限数据
     */
    public function run()
    {
        /**
         * 管理后台
         */
        // 写入初始化权限
        $permissions = [
            // 商品
            'commodity_list', // 商品
            'commodity_category_list', // 商品分类
            'commodity_activity_live_today_list', // 今日直播
            'commodity_activity_praise_return_list', // 好评返团
            'commodity_label_list', // 商品标签

            // 代理
            'partner_list', // 合伙人
            'website_letter_list', // 站内信
            'agent_list', // 代理商
            'agent_label_list', // 代理商标签
            'agent_rule_setting_table', // 规则设置

            // 订单
            'order_list', // 普通订单
            'after_sale_order_list', // 售后订单

            // 供应商
            'supplier_list', // 供应商

            // 财务
            'agent_profit_list', // 代理商利润明细
            'commodity_profit_list', // 商品利润明细
            'daily_report_statistics', // 每日报表统计
            'daily_order_reward', // 每日下单奖励
            'monthly_order_reward', // 每月下单奖励
            'cultivation_award', // 培养奖
            'after_sale_compensation', // 售后补偿
            'agent_withdrawals_record', // 代理提现记录
            'financial_details', // 财务明细

            // 系统
            'async_export_files_download', // 异步导出
            'courier_company_list', // 快递公司
            'role_management_list', // 角色管理
            'account_management_list', // 账号管理
            'operation_log_list', // 操作日志
            'banner_list', // 轮播图
        ];
        \Illuminate\Support\Facades\DB::table('permissions')->insert(array_map(function ($permission) {
            return [
                'name' => $permission,
                'guard_name' => 'admin'
            ];
        }, $permissions));

        // 创建默认角色
        \App\Models\Role::query()
            ->create([
                'name' => '默认角色',
                'guard_name' => 'admin'
            ])
            ->givePermissionTo($permissions);

        // 创建默认管理员
        \App\Models\Administrator::query()
            ->create([
                'account' => 'admin',
                'real_name' => '默认管理员',
                'phone' => '',
                'password' => \Illuminate\Support\Facades\Hash::make(md5('uiwYJl0Gt9FDfqZT')),
            ])
            ->assignRole('默认角色');

        /**
         * 财务管理后台
         */
        \App\Models\FinanceAdministrator::query()
            ->create([
                'account' => 'admin',
                'real_name' => '默认管理员',
                'password' => \Illuminate\Support\Facades\Hash::make(md5('vSeZGCpadcgxNEt3'))
            ]);
    }
}
